/**
 * 
 */
package com.product.profile.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * @author asoundar
 *
 */
@Entity
@Table(name = "profile")
public class Profile {

/*    <!-- PK fields -->
    <column name="profileId" type="long" primary="true" id-type="identity" />

    <!-- UI fields -->

    <!-- Basic Information -->
    <column name="createdForMy" type="int" />
    <column name="profileName" type="String" />
    <column name="gender" type="boolean" />
    <column name="dateOfBirth" type="Date" />
    <column name="maritalStatus" type="int" />
    <column name="children" type="int" />
    <column name="reMarriageReason" type="String" />
    <column name="height" type="int" />
    <column name="weight" type="int" />
    <column name="complexion" type="int" />
    <column name="motherTongue" type="int" />
    
		<!-- Location Information -->
    <column name="residingCountry" type="int" />
    <column name="residingState" type="int" />
    <column name="residingCity" type="int" />
    <column name="address" type="String" />
    <column name="postalCode" type="String" />
    <column name="homePhone" type="String" />
    <column name="mobile" type="String" />
    <column name="emailAddress" type="String" />
    
	<!--AU (audit) fields -->
    <column name="addedBy" type="long" />
    <column name="dateAdded" type="Date" />
    <column name="dateModified" type="Date" />
    <column name="modifiedBy" type="long" />
    <column name="modifiedCount" type="int" />    

    */

	@Id
	@Column(name="profileId")
	@GeneratedValue
	private Long profileId;
	
	@Column(name="createdFor")
	private Integer createdFor;

	@Column(name="profileName")
	private String profileName;

	@Column(name="gender")
	private Boolean gender;

	@Column(name="dateOfBirth")
	private Date dateOfBirth;
	
	@Column(name="maritalStatus")
	private Integer maritalStatus;
	
	@Column(name="children")
	private Integer children;
	
	@Column(name="reMarriageReason")
	private String reMarriageReason;
	
	@Column(name="height")
	private Integer height;
	
	@Column(name="weight")
	private Integer weight;
	
	@Column(name="complexion")
	private Integer complexion;
	
	@Column(name="motherTongue")
	private Integer motherTongue;
	
	@Column(name="residingCountry")
	private Integer residingCountry;
	
	@Column(name="residingState")
	private Integer residingState;
	
	@Column(name="residingCity")
	private Integer residingCity;
	
	@Column(name="address")
	private String address;
	
	@Column(name="postalCode")
	private String postalCode;
	
	@Column(name="homePhone")
	private String homePhone;
	
	@Column(name="mobile")
	private String mobile;
	
	@Column(name="emailAddress")
	private String emailAddress;
	
	@Column(name="addedBy")
	private Long addedBy;
	
	@Column(name="dateAdded")
	private Date dateAdded;
	
	@Column(name="dateModified")
	private Date dateModified;
	
	@Column(name="modifiedBy")
	private Long modifiedBy;	
	
	@Column(name="modifiedCount")
	private Integer modifiedCount;
	
	/**
	 * @return the profileId
	 */
	public Long getProfileId() {
		return profileId;
	}

	/**
	 * @param profileId the profileId to set
	 */
	public void setProfileId(Long profileId) {
		this.profileId = profileId;
	}

	/**
	 * @return the createdFor
	 */
	public Integer getCreatedFor() {
		return createdFor;
	}

	/**
	 * @param createdFor the createdFor to set
	 */
	public void setCreatedFor(Integer createdFor) {
		this.createdFor = createdFor;
	}

	/**
	 * @return the profileName
	 */
	public String getProfileName() {
		return profileName;
	}

	/**
	 * @param profileName the profileName to set
	 */
	public void setProfileName(String profileName) {
		this.profileName = profileName;
	}

	/**
	 * @return the gender
	 */
	public Boolean getGender() {
		return gender;
	}

	/**
	 * @param gender the gender to set
	 */
	public void setGender(Boolean gender) {
		this.gender = gender;
	}

	/**
	 * @return the dateOfBirth
	 */
	public Date getDateOfBirth() {
		return dateOfBirth;
	}

	/**
	 * @param dateOfBirth the dateOfBirth to set
	 */
	public void setDateOfBirth(Date dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	/**
	 * @return the maritalStatus
	 */
	public Integer getMaritalStatus() {
		return maritalStatus;
	}

	/**
	 * @param maritalStatus the maritalStatus to set
	 */
	public void setMaritalStatus(Integer maritalStatus) {
		this.maritalStatus = maritalStatus;
	}

	/**
	 * @return the children
	 */
	public Integer getChildren() {
		return children;
	}

	/**
	 * @param children the children to set
	 */
	public void setChildren(Integer children) {
		this.children = children;
	}

	/**
	 * @return the reMarriageReason
	 */
	public String getReMarriageReason() {
		return reMarriageReason;
	}

	/**
	 * @param reMarriageReason the reMarriageReason to set
	 */
	public void setReMarriageReason(String reMarriageReason) {
		this.reMarriageReason = reMarriageReason;
	}

	/**
	 * @return the height
	 */
	public Integer getHeight() {
		return height;
	}

	/**
	 * @param height the height to set
	 */
	public void setHeight(Integer height) {
		this.height = height;
	}

	/**
	 * @return the weight
	 */
	public Integer getWeight() {
		return weight;
	}

	/**
	 * @param weight the weight to set
	 */
	public void setWeight(Integer weight) {
		this.weight = weight;
	}

	/**
	 * @return the complexion
	 */
	public Integer getComplexion() {
		return complexion;
	}

	/**
	 * @param complexion the complexion to set
	 */
	public void setComplexion(Integer complexion) {
		this.complexion = complexion;
	}

	/**
	 * @return the motherTongue
	 */
	public Integer getMotherTongue() {
		return motherTongue;
	}

	/**
	 * @param motherTongue the motherTongue to set
	 */
	public void setMotherTongue(Integer motherTongue) {
		this.motherTongue = motherTongue;
	}

	/**
	 * @return the residingCountry
	 */
	public Integer getResidingCountry() {
		return residingCountry;
	}

	/**
	 * @param residingCountry the residingCountry to set
	 */
	public void setResidingCountry(Integer residingCountry) {
		this.residingCountry = residingCountry;
	}

	/**
	 * @return the residingState
	 */
	public Integer getResidingState() {
		return residingState;
	}

	/**
	 * @param residingState the residingState to set
	 */
	public void setResidingState(Integer residingState) {
		this.residingState = residingState;
	}

	/**
	 * @return the residingCity
	 */
	public Integer getResidingCity() {
		return residingCity;
	}

	/**
	 * @param residingCity the residingCity to set
	 */
	public void setResidingCity(Integer residingCity) {
		this.residingCity = residingCity;
	}

	/**
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}

	/**
	 * @param address the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * @return the postalCode
	 */
	public String getPostalCode() {
		return postalCode;
	}

	/**
	 * @param postalCode the postalCode to set
	 */
	public void setPostalCode(String postalCode) {
		this.postalCode = postalCode;
	}

	/**
	 * @return the homePhone
	 */
	public String getHomePhone() {
		return homePhone;
	}

	/**
	 * @param homePhone the homePhone to set
	 */
	public void setHomePhone(String homePhone) {
		this.homePhone = homePhone;
	}

	/**
	 * @return the mobile
	 */
	public String getMobile() {
		return mobile;
	}

	/**
	 * @param mobile the mobile to set
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * @return the emailAddress
	 */
	public String getEmailAddress() {
		return emailAddress;
	}

	/**
	 * @param emailAddress the emailAddress to set
	 */
	public void setEmailAddress(String emailAddress) {
		this.emailAddress = emailAddress;
	}

	/**
	 * @return the addedBy
	 */
	public Long getAddedBy() {
		return addedBy;
	}

	/**
	 * @param addedBy the addedBy to set
	 */
	public void setAddedBy(Long addedBy) {
		this.addedBy = addedBy;
	}

	/**
	 * @return the dateAdded
	 */
	public Date getDateAdded() {
		return dateAdded;
	}

	/**
	 * @param dateAdded the dateAdded to set
	 */
	public void setDateAdded(Date dateAdded) {
		this.dateAdded = dateAdded;
	}

	/**
	 * @return the dateModified
	 */
	public Date getDateModified() {
		return dateModified;
	}

	/**
	 * @param dateModified the dateModified to set
	 */
	public void setDateModified(Date dateModified) {
		this.dateModified = dateModified;
	}

	/**
	 * @return the modifiedBy
	 */
	public Long getModifiedBy() {
		return modifiedBy;
	}

	/**
	 * @param modifiedBy the modifiedBy to set
	 */
	public void setModifiedBy(Long modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * @return the modifiedCount
	 */
	public Integer getModifiedCount() {
		return modifiedCount;
	}

	/**
	 * @param modifiedCount the modifiedCount to set
	 */
	public void setModifiedCount(Integer modifiedCount) {
		this.modifiedCount = modifiedCount;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Profile [profileId=" + profileId + ", createdFor=" + createdFor
				+ ", profileName=" + profileName + ", gender=" + gender
				+ ", dateOfBirth=" + dateOfBirth + ", maritalStatus="
				+ maritalStatus + ", children=" + children
				+ ", reMarriageReason=" + reMarriageReason + ", height="
				+ height + ", weight=" + weight + ", complexion=" + complexion
				+ ", motherTongue=" + motherTongue + ", residingCountry="
				+ residingCountry + ", residingState=" + residingState
				+ ", residingCity=" + residingCity + ", address=" + address
				+ ", postalCode=" + postalCode + ", homePhone=" + homePhone
				+ ", mobile=" + mobile + ", emailAddress=" + emailAddress
				+ ", addedBy=" + addedBy + ", dateAdded=" + dateAdded
				+ ", dateModified=" + dateModified + ", modifiedBy="
				+ modifiedBy + ", modifiedCount=" + modifiedCount + "]";
	}
	
}
